home *** CD-ROM | disk | FTP | other *** search
/ AMIGA-CD 2 / Amiga-CD - Volume 2.iso / ungepackte_daten / 1993 / 6 / 02 / tips & tricks / idcmp-blocker.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-01  |  1.9 KB  |  70 lines

  1. /* IDCMPBlocker.c
  2.  * Compiler-Optionen für SAS-C: 
  3.  * LC -b1 -cfistq -v -y -j100 -L IDCMPBlocker.c
  4.  */
  5. #include <exec/types.h>
  6. #include <intuition/intuition.h>
  7. #include <clib/exec_protos.h>
  8. #include <clib/intuition_protos.h>
  9.  
  10. extern struct IntuitionBase *IntuitionBase;
  11.  
  12. /* Grafikdaten für den Mauszeiger */
  13. UWORD __chip WaitPointer[] = {
  14.  0x0000, 0x0000, 0x0400, 0x07C0, 0x0000, 0x07C0,
  15.  0x0100, 0x0380, 0x0000, 0x07E0, 0x07C0, 0x1FF8,
  16.  0x1FF0, 0x3FEC, 0x3FF8, 0x7FDE, 0x3FF8, 0x7FBE,
  17.  0x7FFC, 0xFF7F, 0x7EFC, 0xFFFF, 0x7FFC, 0xFFFF,
  18.  0x3FF8, 0x7FFE, 0x3FF8, 0x7FFE, 0x1FF0, 0x3FFC,
  19.  0x07C0, 0x1FF8, 0x0000, 0x07E0, 0x0000, 0x0000,
  20. };
  21.  
  22. struct NewWindow BusyWindow = {
  23.   10,10,300,100, 0,1, CLOSEWINDOW, 
  24.   WINDOWCLOSE|ACTIVATE, NULL, NULL, NULL, NULL,
  25.   NULL,5,5, -1,-1, WBENCHSCREEN
  26. };
  27.  
  28. main()
  29. {
  30.   struct Window *MyWindow;
  31.   struct Requester busyreq;
  32.  
  33.   /* Library und Fenster öffnen */
  34.   if(IntuitionBase = 
  35.        OpenLibrary("intuition.library",33L)) {
  36.     if( MyWindow = OpenWindow( &BusyWindow ) ) {
  37.       /* Requester initialisieren */
  38.       InitRequester(&busyreq);
  39.       
  40.       if(Request(&busyreq, MyWindow)) {
  41.         /* Requester aktiv. Mauszeiger modifizieren
  42.          * und den Window-Titel ändern */
  43.         SetPointer(MyWindow, WaitPointer,16,16,-8,0);
  44.         SetWindowTitles(MyWindow,
  45.                     "Eingabe blockiert",(UBYTE *)~0);
  46.  
  47.         /* Kurze Zeit warten */
  48.         (void)Delay( 5*50 );
  49.         
  50.         /* Mauszeiger wieder in Originalzustand und
  51.          * Request beenden */
  52.         ClearPointer(MyWindow);
  53.         EndRequest(&busyreq, MyWindow);
  54.       }
  55.  
  56.       SetWindowTitles(MyWindow,
  57.             "Eingabe wieder möglich",(UBYTE *)~0);
  58.       
  59.       /* Auf CLOSEWINDOW-Message warten und Message
  60.        * beantworten */
  61.       WaitPort( MyWindow->UserPort );
  62.       ReplyMsg(GetMsg(MyWindow->UserPort));
  63.       
  64.       CloseWindow(MyWindow);
  65.     }
  66.     CloseLibrary(IntuitionBase);
  67.   }
  68. }
  69.  
  70.